home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
OneOfCluster.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-06-10
|
2KB
|
99 lines
#ifdef __GNUG__
#pragma implementation
#endif
#include "OneOfCluster.h"
#include "Class.h"
#include "Buttons.h"
#include "OrdColl.h"
//---- OneOfCluster ------------------------------------------------------------
NewMetaImpl0(OneOfCluster,Cluster);
OneOfCluster::OneOfCluster(int id, VObjAlign a, Point g, SeqCollection *cp)
: Cluster(id, a, g, cp)
{
if (Size() > 0)
SetItemOn(At(0)->GetId());
}
OneOfCluster::OneOfCluster(int id, VObjAlign a, Point g, VObject *va_(vop), ...)
: Cluster(id, a, g)
{
va_list ap;
va_start(ap,va_(vop));
SetItems(va_(vop), ap);
if (Size() > 0)
SetItemOn(At(0)->GetId());
va_end(ap);
}
OneOfCluster::OneOfCluster(int id, VObject *va_(vop), ...) : Cluster(id, eVObjHLeft)
{
va_list ap;
va_start(ap,va_(vop));
SetItems(va_(vop), ap);
if (Size() > 0)
SetItemOn(At(0)->GetId());
va_end(ap);
}
OneOfCluster::OneOfCluster(int id, VObjAlign a, Point g, char *va_(cp), ...)
: Cluster(id, a, g)
{
char *t;
va_list ap;
va_start(ap,va_(cp));
Add(new RadioButton(id+0, va_(cp)));
for (int i= 1; t= va_arg(ap, char*); i++)
Add(new RadioButton(id+i, t));
SetItemOn(At(0)->GetId());
va_end(ap);
}
OneOfCluster::OneOfCluster(int id, char *va_(cp), ...) : Cluster(id, eVObjHLeft)
{
char *t;
va_list ap;
va_start(ap,va_(cp));
Add(new RadioButton(id+0, va_(cp)));
for (int i= 1; t= va_arg(ap, char*); i++)
Add(new RadioButton(id+i, t));
SetItemOn(At(0)->GetId());
va_end(ap);
}
void OneOfCluster::SetValue(int id)
{
Iter next(MakeIterator());
register VObject *dip;
while (dip= (VObject*) next())
if (dip->IsKindOf(StateButton))
((StateButton*)dip)->SetValue((int) dip->GetId() == id);
}
int OneOfCluster::GetValue()
{
Iter next(MakeIterator());
register VObject *dip;
while (dip= (VObject*) next())
if (dip->IsKindOf(StateButton))
if (((StateButton*)dip)->GetValue())
return dip->GetId();
return cIdNone;
}
void OneOfCluster::Control(int id, int part, void *v)
{
if (part == cPartToggle) {
SetItemOn(id);
Cluster::Control(GetId(), id, v);
}
}